# 从当前模块导入蓝图对象,
from info.models import User
from . import index_bp
from flask import session,current_app,render_template
from info import redis_store,models


# 2,使用蓝图对象
@index_bp.route('/')
def index():
    #查询用户信息,将用户信息通过模板带回展示
    #0,用户登录成功后,redis, 以session保存了用户的部分信息,包括user_id,通过这里获取用户id
    #1.如果用户登录成功就能够获取用户的id
    user_id = session.get("user_id")

    #2.根据用户id查询用户所有的数据,
    user = ""
    if user_id:
        user = User.query.get(user_id)

    #3.将用户模型对象,转换成用户的字典对象
    #他这么调用,是因为他在模型下,自己封装了函数,以字典类型存下各个字段名,调用方便;另外新键名与数据库字段名可以不同,成功隐藏了数据库字段名,利于安全

    # 下方法if user else None用于判断用户是否存在 ,相当于如下
        # if user:
        #     return user.to_dict()
        # else:
        #     return None

    data = {
        "user_info":user.to_dict() if user else None
    }

    return render_template("index.html",data=data)



# 返回网络徽标,此路由是浏览器自动请求的,
@index_bp.route('/favicon.ico')
def favicon():
    """返回项目图标"""

    # send_static_file: 将static中的静态文件发送给浏览器
    return current_app.send_static_file("news/favicon.ico")


